package com.ssd.controller.operation;

import com.github.pagehelper.PageInfo;
import com.ssd.entity.operation.dto.SysRoleDto;
import com.ssd.entity.operation.entity.SysRole;
import com.ssd.service.SysRoleService;
import com.ssd.view.BaseResponse;
import com.ssd.viewmodel.Pager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Map;

/**
 * <p>
 * 角色表 前端控制器
 * </p>
 */
@RestController
@RequestMapping("/admin/role")
@Api(tags = "角色表 前端控制器")
public class SysRoleController {
    @Resource
    private SysRoleService roleService;

    //查询所有角色
    @GetMapping("/findAllRoles/{userId}")
    @ApiOperation(value = "查询所有角色")
    public BaseResponse<Map<String,Object>> findAllRoles(@PathVariable("userId") Long userId) {
        Map<String,Object> map = roleService.findAll(userId);
        return new BaseResponse<>(map);
    }

    //4 角色删除的方法
    @DeleteMapping("/deleteById/{roleId}")
    @ApiOperation(value = "角色删除的方法")
    public BaseResponse deleteById(@PathVariable("roleId") Long roleId) {
        roleService.deleteById(roleId);
        return new BaseResponse();
    }

    //3 角色修改的方法
    @PutMapping("/updateSysRole")
    @ApiOperation(value = "角色修改的方法")
    public BaseResponse updateSysRole(@RequestBody SysRole sysRole) {
        roleService.updateSysRole(sysRole);
        return new BaseResponse();
    }

    //2 角色添加的方法
    @PostMapping(value = "/saveSysRole")
    @ApiOperation(value = "角色管理:添加")
    public BaseResponse saveSysRole(@RequestBody SysRole sysRole) {
        roleService.saveSysRole(sysRole);
        return new BaseResponse();
    }

    //1 角色列表的方法
    // current：当前页   limit：每页显示记录数
    // SysRoleDto: 条件角色名称对象
    @PostMapping("/findByPage/{current}/{limit}")
    @ApiOperation(value = "角色列表的方法")
    public BaseResponse<PageInfo<SysRole>> findByPage(@PathVariable("current") Integer current,
                             @PathVariable("limit") Integer limit,
                             @RequestBody SysRoleDto sysRoleDto) {
        //pageHelper插件实现分页
        PageInfo<SysRole> pageInfo = roleService.findByPage(sysRoleDto,current,limit);
        return new BaseResponse(pageInfo);
    }
}
